<?php namespace Common\Model;
//引入框架里的模型类
use Hdphp\Model\Model;
//	用户模型
class Order extends Model{
	
protected $table='Orders';


	public function store(){
	
//		p($_POST);die;
//		p($_SESSION['uid']);die;
//			订单号
		$orderNumber=Cart::getOrderId();
//			收货人姓名
		$consignee=Q('post.consignee');
//			收货地址
		$address=Q('post.address');
//			转换为字符串
		$address=implode(',', $address);
//		p($address);die;
//			手机号
		$mobile=Q('post.mobile');
//			备注
		$remark=Q('post.remark');
//			$total=
//			获取当前购物车已经选中的商品键名
		$glid=$_SESSION['cartglid'];
//		p($glid);die;
//			将键名数据传入方法中获取对应的商品数据
		$cartData=$this->getCartGoods($glid);
//			p($cartData);die;
		
//			写入数据库
//		写入订单表，
		$data=array(
			'number'=>$orderNumber,
			'consignee'=>$consignee,
			'address'=>$address,
			'mobile'=>$mobile,
			'total'=>$cartData['total_all'],
			'time'=>time(),
			'remark'=>$remark,
			'status'=>'未付款',
			'uid'=>$_SESSION['uid'],
		);
//			p($data);die;
//			写入订单表中
//			返回写入订单的主键id
		$oid=$this->add($data);		

		$orderListModel=new \Common\Model\OrderList;
		
//			p($cartData);die;
		foreach($cartData['goods'] as $k=>$v){
//				组合属性id
				$combile=$v['options']['combile'];
//				获取组合属性的主键id
				$glid=Db::table('goods_list')->where('combine',$combile)->where('gid',$v['id'])->pluck('glid');
				
				$number=Db::table('goods_list')->where('combine',$combile)->where('gid',$v['id'])->pluck('number');
				
				
				$data=array(
//				数量
					'quantity'=>$v['num'],
//					小计金额
					'subtotal'=>$v['total'],
//					备注说明
					'explain'=>$remark,
//					商品id
					'gid'=>$v['id'],
//					订单id
					'oid'=>$oid,
//					货品列表主键
					'glid'=>$glid,
//					货品货号
					'glnumber'=>$number,
				);
//				p($data);
				$orderListModel->add($data);
			}
		
			return $orderNumber;
		
}









private function getCartGoods($glid){
		//		注意这里只需要获取选中的商品的数据信息
		$data=Cart::getGoods(); 
//		p($glid);
//		p($data);die;
		
		$comData=array();
		$totalData=array();
		foreach($data as $k=>$v){
//			当，当前商品的键名存在于所有选择中的商品id中
			if(in_array($k,$glid)){
				$comData['goods'][]=$v;
//				压入小计价格
				$totalData[]=$v['total'];
				
			}
		}
//		p($totalData);
//		求和array_sum
//		压入商品数组中
		$comData['total_all']=array_sum($totalData);
//		p($comData);die;
		return $comData;
	}






}
